<?php
declare (strict_types = 1);

namespace app\tools;

use app\exception\LogicException;
use app\facade\CurlFacade;
use app\tools\guzzle\CommunalRequestTrait;
use think\facade\Cache;

final class SmsTool
{
    /**
     * api 基础uri
     *
     * @var string
     */
    protected $sendUrl = 'http://sdk2.entinfo.cn:8060/webservice.asmx/mt';

    /**
     * 发送短信
     *
     * @param $phoneNumber
     * @param $content
     * @return int
     * @throws LogicException
     */
    public function send($phoneNumber, $content)
    {
        $argv = [
            'sn' => config('sms.sn'),
            //替换成您自己的序列号
            'pwd' => strtoupper(md5(config('sms.sn') . config('sms.pwd'))),
            //此处密码需要加密 加密方式为 md5(sn+password) 32位大写
            'mobile' => $phoneNumber,
            //手机号 多个用英文的逗号隔开 post理论没有长度限制.推荐群发一次小于等于10000个手机号
            'content' => iconv("UTF-8", "gb2312//IGNORE", $content . '【'.(config('sms.suffix')).'】'),
            //短信内容
            'ext' => '',
            'stime' => '',
            //定时时间 格式为2011-6-29 11:09:21
            'rrid' => ''
        ];
        $params = http_build_query($argv);
        // $params = $argv;
        $ret = CurlFacade::curlPost($this->sendUrl, $params);
        $checkCode = (int)(strip_tags($ret));

        if ($checkCode <= 0) {
            throw new LogicException('短信平台异常,错误码: ' . $checkCode);
        }

        return $checkCode;
    }
}
